]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
gdm: Fail and restart verification on conversation stopped for all services
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Mon, 8 Feb 2021 17:57:06 +0000 (18:57 +0100)
committerRay Strode <halfline@gmail.com>
Mon, 15 Feb 2021 16:58:50 +0000 (16:58 +0000)
Currently when the foreground service conversation stops we increase the
verification failed count and try to start it again, while if a
background service has been stopped we just ignore it.

This is causing a various number of issues, for example in the case of
the fingerprint authentication service, it is normally configured to die
after a timeout, and we end up never restarting it (while the UI still
keeps showing to the user the message about swipe/touch the device).

So, in such case let's just consider it a "soft" verification failure
that doesn't increase the failures count but will cause us to reset the
UI and try to restart the authentication (and so the affected service).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1652>

js/gdm/util.js

index 1666fd842da621d920c9dbbca1e34b7ee399ce01..a91badf4fe67c6635a59812a47ad034a7343969a 100644 (file)
@@ -677,10 +677,10 @@ var ShellUserVerifier = class {
         // if the password service fails, then cancel everything.
         // But if, e.g., fingerprint fails, still give
         // password authentication a chance to succeed
-        if (this.serviceIsForeground(serviceName)) {
+        if (this.serviceIsForeground(serviceName))
             this._failCounter++;
-            this._verificationFailed(serviceName, true);
-        }
+
+        this._verificationFailed(serviceName, true);
     }
 };
 Signals.addSignalMethods(ShellUserVerifier.prototype);